Explore Nakama API
Authenticate
Userを認証する。
Userは、Nakamaを使ってやりたいことに対してかなり大きな役割を持つ。
Userが
他の人とフレンドなる
グループやクランに参加させる
他の人にメッセージを送る
Nakama サーバーに自分の情報を保存する
認証の方法は、
device ID
email
social providers
twitter
facebook
steam
GameCenter (ios)
google
Nakamaの対応プラットフォーム
https://gyazo.com/012dab804193252aabcc8ff2ef870ea2
クライアントは色々。
Javascriptで出来るならもうどこでもできそう。
バックエンドも、
クラウドのVM
Heroic Labのサービス
docker
いろいろ
Nakama Storage
Nakama はユーザーに関する情報を、Jsonで保存できる。
code: collections.json
{
"collection": "saves",
"key": "savegame",
"value": save_game
},
{
"collection": "stats",
"key": "skills",
"value": my_stats
}
これをセーブするコードがこれ(async/awaitを使う)
code: save.tsx
const save_to_storage = async () => {
const session = await client.authenticateEmail({
email,
password,
username,
create: true // もしもユーザーが存在しなかったら、作る(auth or create)
})
let save_game = { progress: 50 }
let my_stats = { skill: 24 }
const object_ids = await client.writeStorageObjects(session, [
{
collection: 'saves',
key: 'savegame',
value: save_game
},
{
collection: 'stats',
key: 'skills',
value: my_stats
}
])
}
WriteStorageObject の配列と、session を渡すと、Storageにオブジェクトを書き込める。
code: WriteStorageObject.ts
export interface WriteStorageObject {
collection?: string;
key?: string;
permission_read?: number;
permission_write?: number;
value?: object;
version?: string;
}
他のユーザーから見れたり、更新できたりする?
もしくは、チート防止。
Friendship機能
つまり、フレンド機能
フレンドがオンラインか確認
最後にログインしていた時間を確認
リアルタイムチャット
ゲームプレイで相互干渉
クライアントから、client.addFriends() メソッドを呼び出して登録できる。
id と nameが必要。
一度に複数登録できる。
code: Friendship.ts
async function createFriendship() {
const client = new Client('defaultkey', '127.0.0.1', '7350')
client.useSSL = false
const email = 'greatsword8821@gmail.com'
const password = 'maxy8821'
const session = await client.authenticateEmail({
email,
password
})
await client.addFriends(session, ids, userNames)
}
Nakama Consoleの Users から確認できる
https://gyazo.com/d22c0193c918e64f262289143d9b78ba